#include "include/gtest.h"
#include "../Tool/include/Timer.h"
#include "../Tool/include/ILogger.h"

using namespace Tool;
TEST(Timer, TimerTest)
{
    LOG_INFO("timer 任务开始");
    Timer timer;
    LOG_INFO("耗时： %.3f", timer.Elapsed());

    {
        Timer timer;
        timer.AddTask(200, []() {
            LOG_INFO("我是一次定时任务");
            }, true);
        timer.SleepMs(300);
    }

    timer.AddTask(100, []() {
        LOG_INFO("我是二次定时任务");
        }, true);
    timer.SleepMs(200);

    int count = 1;
    timer.AddTask(100, [&]() {
        LOG_INFO("我是第一个周期定时任务，第：%d次任务", count++);
    });

    int count2 = 1;
    uint64_t id2 = timer.AddTask(100, [&]() {
        LOG_INFO("我是第二个周期定时任务，第：%d次任务", count2++);
    });
    timer.SleepMs(300);
    timer.RemoveTask(id2);

    timer.SleepMs(500);
    timer.StopAllTasks();
    LOG_INFO("timer 任务结束");
}
